/*
 * seqLettersFreq.h
 *
 *  Created on: 2011-09-28
 *      Author: pawel
 */

#ifndef SEQLETTERSFREQ_H_
#define SEQLETTERSFREQ_H_
#include<vector>
#include<string.h>
namespace bpp{
class BasicSequence;
class Alphabet;
}
/**
 * this class gets basic parameters of
 * sequence.
 */
class seqLettersFreq{
private:
	/*
	 * Vector of letters frequencies
	 */
std::vector<size_t> lettersFreqVec;
/*
 * number of alphabet letters in sequence
 */
size_t numOfLetters;
/**
 * Length of sequence
 */
size_t seqLen;
/*
 * Alphabet used to create bpp::BasicSequence object
 */
const bpp::Alphabet *alphabetPtr;
public:
	/**
	 * Constructor
	 *
	 */
seqLettersFreq(bpp::BasicSequence *seqPtr);
/**
 * get vector of frequencies
 */
std::vector<size_t>& getFreqVectorRef();
/*
 * get sequence with the same length and symbol composition as base sequence
 */
bpp::BasicSequence* getSimpleSeq();
};

#endif /* SEQLETTERSFREQ_H_ */
